package controlador.buzones;

/**
 * Tipos de los mensajes que se pasan entre los aut&oacute;matas.
 * @author Globlex Inc.
 *
 */
public enum MessageTypes {
	/* Para pedir al receptor que se enlace con el emisor*/
	BEFRIEND,
	/* Para pedir al receptor que se devincule del emisor */
	UNFRIEND,
	/* Los mensajes de este tipo contienen los parametros de configuracion */
	PARAMS,
	
	/* El maestro enviara este mensajae sin contenido a x ciclos. Si se produce una
	 * excepcion se asume que se ha caido
	 */
	ALIVE, // maestro -> todos
	ESTADOS1, // automata1 -> mestro
	START, // maestro -> todos
	STOP, // iface -> mestro -> todos
	EMERGENCY_STOP, // iface -> maestro -> todos
	CONJUNTO_MONTADO_DISPONIBLE, // -> mestro
	CONJUNTO_SOLDADO_DISPONIBLE, // -> mestro
	ESTADOS2, // automata2 -> maestro 
	NUEVO_CONJUNTO_MONTADO_DISPONIBLE_CINTA_TRANSFERENCIA, // automata 1 lo deja en cintra trans. avisar a automata 2
	CONJUNTO_MONTADO_DISPONIBLE_CINTA_TRANSFERENCIA, // avisar a robot 2 para que lo lleve a soldadura
	CONJUNTO_MONTADO_ESTACION_SOLDADURA_ROBOT2, // final del automata 2
	CONJUNTO_SOLDADO_RETIRADO_ESTACION_SOLDADURA, // mestro -> atomata 2 : robot 2 a cogido conjunto soldado
	CONJUNTO_MONTADO_RETIRADO_CINTA_TRANSFERENCIA,
	ESTADOS3, // automata 3 -> mestro
	ACCEPTED, // conjunto bueno
	REJECTED, // conjunto erroneo
	INSPECTION, // maestro -> a3 cuando robot2 deja conjunto en inspeccion
	CAIDOS, // 
	COMIENZO_ROBOT1_TRASLADO_EJE_ENGRANAJE, //el robot1 comienza a transportar el eje y engranaje
	FIN_ROBOT1_TRASLADO_EJE_ENGRANAJE,//el robot1 termina de transportar el eje y engranaje
	COMIENZO_ROBOT1_TRASLADO_CONJUNTO, //el robot1 comienza a transportar el conjunto
	COMIENZO_MONTAJE,
	FIN_MONTAJE,
	COMIENZO_SOLDADURA,
	FIN_SOLDADURA,
	EXIT // robot2 a cogido pieza y la ha dejado en aceptados o rechazados
	;
}
